﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace FrmLogin
{
    public partial class Form4 : Form
    {
        public int idUsuario { get; set; }
        clsFunciones _metodos = new clsFunciones();
        DataTable _dt = new DataTable();
        BEUsuario _be;
        public bool _Action = false;

        public Form4()
        {
            InitializeComponent();
        }

        private void Form4_Load(object sender, EventArgs e)
        {
            if (idUsuario != 0) cargarDatosUsuario();
        }

        private void cargarDatosUsuario()
        {
            _dt = _metodos.FillByIdUsuario(idUsuario);

            if (_dt.Rows.Count == 0) return;

            foreach (DataRow row in _dt.Rows)
            {
                this.NombreTextBox.Text = row[1].ToString();
                this.ApellidoTextBox.Text = row[2].ToString();
                this.UsuarioTextBox.Text = row[3].ToString();
                this.txtContrasenaCifrada.Text = row[4].ToString();
                this.EsAdminCheckBox.Checked = Convert.ToBoolean(row[5]);
                this.EstadoCheckBox.Checked = Convert.ToBoolean(row[6]);
            }
        }

        private void ContrasenaTextBox_TextChanged(object sender, EventArgs e)
        {
            txtContrasenaCifrada.Text = _metodos.SHA1(ContrasenaTextBox.Text);
        }

        private void btnSave_Click(object sender, EventArgs e)
        {
            if (!ValidarDatos()) return;

            //Instanciamos la clase Usuario
            _be = new BEUsuario();
            _be.IdUsuario = idUsuario;
            _be.Nombre = this.NombreTextBox.Text;
            _be.Apellido = this.ApellidoTextBox.Text;
            _be.Usuario = this.UsuarioTextBox.Text;
            _be.Contrasena = this.txtContrasenaCifrada.Text;
            _be.EsAdmin = this.EsAdminCheckBox.Checked ? true : false;
            _be.Estado = this.EstadoCheckBox.Checked ? true : false;

            if (idUsuario == 0)
            {
                if (_metodos.insertUsuario(_be))
                { MessageBox.Show("Se agrego el usuario", "Mensaje Confirmación", MessageBoxButtons.OK, MessageBoxIcon.Information); _Action = true; }
                else MessageBox.Show("Error al registrar usuario", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
            else 
            {                
                if (_metodos.updateUsuario(_be))
                { MessageBox.Show("Se agrego el usuario", "Mensaje Confirmación", MessageBoxButtons.OK, MessageBoxIcon.Information); _Action = true; }
                else MessageBox.Show("Error al actualizar usuario", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
            this.Close();
        }
       
        private bool ValidarDatos()
        {
            if (this.NombreTextBox.Text == string.Empty)
            {
                 NombreTextBox.Focus();
                 return false;
            }
            else if (this.ApellidoTextBox.Text == string.Empty)
            {
                 this.ApellidoTextBox.Focus();
                 return false;
            }            
            else if (this.UsuarioTextBox.Text == string.Empty)
            {
                this.UsuarioTextBox.Focus();
                return false;
            }
            else if (this.ContrasenaTextBox.Text == string.Empty)
            {
                this.ContrasenaTextBox.Focus();
                return false;
            }
            return true;
        }
       
    }
}
